--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/frontend/AddInterfaceDiscovery.test.js fda9187e95d8b9cc8373c1de23cefce6928c241d (fda9187e) Text, 3.01 KB
Tff7b72import Tb4b4b4{ Te6edf3mount Tb4b4b4} Tff7b72from Ta5d6ff"@vue/test-utils"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3itTb4b4b4, Te6edf3expectTb4b4b4, Te6edf3viTb4b4b4, Te6edf3beforeEach Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Te6edf3AddInterfacePage Tff7b72from Ta5d6ff"../../meshchatx/src/frontend/components/interfaces/AddInterfacePage.vue"Tb4b4b4;
T8b949e// mocks
Tff7b72const Te6edf3mockAxios Tff7b72= Tb4b4b4{
Te6edf3getTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3postTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tffa657windowTb4b4b4.Te6edf3axios Tff7b72= Te6edf3mockAxiosTb4b4b4;
Te6edf3viTb4b4b4.Te6edf3mockTb4b4b4(Ta5d6ff"../../meshchatx/src/frontend/js/DialogUtils"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Tff7b72defaultTff7b72: Tb4b4b4{
Te6edf3alertTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3viTb4b4b4.Te6edf3mockTb4b4b4(Ta5d6ff"../../meshchatx/src/frontend/js/ToastUtils"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Tff7b72defaultTff7b72: Tb4b4b4{
Te6edf3successTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3errorTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"AddInterfacePage.vue discovery"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3beforeEachTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3viTb4b4b4.Te6edf3clearAllMocksTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3mockAxiosTb4b4b4.Te6edf3getTb4b4b4.Te6edf3mockResolvedValueTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3mockAxiosTb4b4b4.Te6edf3postTb4b4b4.Te6edf3mockResolvedValueTb4b4b4(Tb4b4b4{ Te6edf3dataTff7b72: Tb4b4b4{ Te6edf3messageTff7b72: Ta5d6ff"ok" Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"adds discovery fields when interface is discoverable"Tb4b4b4, Tff7b72async Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3wrapper Tff7b72= Te6edf3mountTb4b4b4(Te6edf3AddInterfacePageTb4b4b4, Tb4b4b4{
Tffa657globalTff7b72: Tb4b4b4{
Te6edf3mocksTff7b72: Tb4b4b4{
Te6edf3$routeTff7b72: Tb4b4b4{ Te6edf3queryTff7b72: Tb4b4b4{Tb4b4b4} Tb4b4b4}Tb4b4b4,
Te6edf3$routerTff7b72: Tb4b4b4{ Te6edf3pushTff7b72: Te6edf3viTb4b4b4.Te6edf3fnTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3$tTff7b72: Tb4b4b4(Te6edf3msgTb4b4b4) Tb4b4b4=> Te6edf3msgTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3stubsTff7b72: Tb4b4b4[Ta5d6ff"RouterLink"Tb4b4b4, Ta5d6ff"MaterialDesignIcon"Tb4b4b4, Ta5d6ff"Toggle"Tb4b4b4, Ta5d6ff"ExpandingSection"Tb4b4b4, Ta5d6ff"FormLabel"Tb4b4b4, Ta5d6ff"FormSubLabel"Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// required interface fields
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3newInterfaceName Tff7b72= Ta5d6ff"TestIface"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3newInterfaceType Tff7b72= Ta5d6ff"TCPClientInterface"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3newInterfaceTargetHost Tff7b72= Ta5d6ff"example.com"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3newInterfaceTargetPort Tff7b72= Ta5d6ff"4242"Tb4b4b4;
T8b949e// discovery fields
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discoverable Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discovery_name Tff7b72= Ta5d6ff"Region A"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3announce_interval Tff7b72= T79c0ff720Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3reachable_on Tff7b72= Ta5d6ff"/usr/local/bin/ip.sh"Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discovery_stamp_value Tff7b72= T79c0ff22Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discovery_encrypt Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3publish_ifac Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3latitude Tff7b72= T79c0ff1.23Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3longitude Tff7b72= T79c0ff4.56Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3height Tff7b72= T79c0ff7Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discovery_frequency Tff7b72= T79c0ff915000000Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discovery_bandwidth Tff7b72= T79c0ff125000Tb4b4b4;
Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3discoveryTb4b4b4.Te6edf3discovery_modulation Tff7b72= Ta5d6ff"LoRa"Tb4b4b4;
Tff7b72await Te6edf3wrapperTb4b4b4.Te6edf3vmTb4b4b4.Te6edf3addInterfaceTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3mockAxiosTb4b4b4.Te6edf3postTb4b4b4)Tb4b4b4.Te6edf3toHaveBeenCalledWithTb4b4b4(
Ta5d6ff"/api/v1/reticulum/interfaces/add"Tb4b4b4,
Te6edf3expectTb4b4b4.Te6edf3objectContainingTb4b4b4(Tb4b4b4{
Te6edf3discoverableTff7b72: Ta5d6ff"yes"Tb4b4b4,
Te6edf3discovery_nameTff7b72: Ta5d6ff"Region A"Tb4b4b4,
Te6edf3announce_intervalTff7b72: T79c0ff720Tb4b4b4,
Te6edf3reachable_onTff7b72: Ta5d6ff"/usr/local/bin/ip.sh"Tb4b4b4,
Te6edf3discovery_stamp_valueTff7b72: T79c0ff22Tb4b4b4,
Te6edf3discovery_encryptTff7b72: Tff7b72trueTb4b4b4,
Te6edf3publish_ifacTff7b72: Tff7b72trueTb4b4b4,
Te6edf3latitudeTff7b72: T79c0ff1.23Tb4b4b4,
Te6edf3longitudeTff7b72: T79c0ff4.56Tb4b4b4,
Te6edf3heightTff7b72: T79c0ff7Tb4b4b4,
Te6edf3discovery_frequencyTff7b72: T79c0ff915000000Tb4b4b4,
Te6edf3discovery_bandwidthTff7b72: T79c0ff125000Tb4b4b4,
Te6edf3discovery_modulationTff7b72: Ta5d6ff"LoRa"Tb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────